package com.atguigu.mybatis.mappers;

import com.atguigu.mybatis.pojo.User;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: YKH
 * Date: 2022-08-15
 * Time: 17:10
 */
public interface ParameterMapper {
    /**
     *  获取所有用户信息
     */
    public List<User> getAllUser() ;

    /**
     * 获取指定用户的信息 ( 传递单个参数)
     */
    public User getSelectUser( @Param("username") String username);

    /**
     * 根据用户名密码进行登录 (由Mbtais自动存放到 map 中)
     */
    public User loginUser( String username, String password);

    /**
     * 根据用户名密码进行登录 (自定义 map )
     */
    public User loginUserByMap( Map<String,Object> map);

    /**
     *  接收到的数据时一个实体类对象, 将其插入到 user表中
     */
     public int insertUser( User user);

    /**
     * 使用param注解,
     */

    public User loginByParam(@Param("name") String name, @Param("pwd") String password);

    /**
     * 查询  user 表中的用户数量
     */

    public int getCountUser();

    /**
     * 查询一条用户信息 ,以map集合为结果返回
     */

    public Map<String,Object> getSelectUserToMap(@Param("id") int id);

    /**
     * 获取所有用户信息, 使用map集合接收
     */
    @MapKey("id")
    public Map<String,Object> getAllUserToMap( );

}
